<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
      <div>
        <span>姓名:</span>
        <input type="text" v-model.trim="name"/>
      </div>
      <div>
        <span>年龄:</span>
        <input type="number" v-model.number="age" />
      </div>
      <div>
        <span>性别:</span>
        <select v-model="gender">
          <option value="男">男</option>
          <option value="女">女</option>
        </select>
      </div>
      <div>
        <button @click="add">添加</button>
        <button @click="alter">修改</button>
      </div>
      <div>
        <table border="1" cellpadding="10" cellspacing="0">
          <tr>
            <th>序号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>操作</th>
          </tr>
          <tr v-for="(item,index) in list" :key="item.id">
            <td>{{index +1}}</td>
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
            <td>{{item.gender}}</td>
            <td>
              <button @click="del(item.id)">删除</button>
              <button @click="edit(item.id)">编辑</button>
            </td>
          </tr>
        </table>
      </div>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        name:'',
        age:'',
        gender:'',
        list:[
            {id:1,name:'Tom',age:19,gender:'男'},
            {id:2,name:'Jone',age:21,gender:'男'},
            {id:3,name:'Alice',age:16,gender:'女'}
        ]
      },
      methods:{
        del(id){
            this.list = this.list.filter(item => item.id !== id)
        },
        add(){
            if(!this.name){
                return alert('请输入姓名')
            }
           if(!this.gender){
            return alert('请选择性别')
           }
            this.list.unshift({
                id: +new Date(),
                name:this.name,
                age:this.age,
                gender:this.gender
            })
            this.name=''
            this.age = ''
            this.gender = ''
        },
        edit(id){
            data = this.list.find(item => item.id === id)
            this.name = data.name
            this.age=data.age
            this.gender = data.gender 
        },
        alter(){
            data.name = this.name
            data.age = this.age
            data.gender = this.gender

            this.name =''
            this.age=0
            this.gender = ''
        }
      }
    })
  </script>
</body>

</html>